package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;

import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.AutoFill;
import com.ruoyi.common.enums.AutoFillType;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.BasicMessageTemplateMapper;
import com.ruoyi.system.domain.BasicMessageTemplate;
import com.ruoyi.system.service.IBasicMessageTemplateService;

/**
 * 消息模板Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-03-02
 */
@Service
public class BasicMessageTemplateServiceImpl implements IBasicMessageTemplateService 
{
    @Autowired
    private BasicMessageTemplateMapper basicMessageTemplateMapper;

    /**
     * 查询消息模板
     * 
     * @param messageTemplateId 消息模板主键
     * @return 消息模板
     */
    @Override
    public BasicMessageTemplate selectBasicMessageTemplateByMessageTemplateId(Long messageTemplateId)
    {
        return basicMessageTemplateMapper.selectBasicMessageTemplateByMessageTemplateId(messageTemplateId);
    }

    /**
     * 查询消息模板列表
     * 
     * @param basicMessageTemplate 消息模板
     * @return 消息模板
     */
    @Override
    public List<BasicMessageTemplate> selectBasicMessageTemplateList(BasicMessageTemplate basicMessageTemplate)
    {
        return basicMessageTemplateMapper.selectBasicMessageTemplateList(basicMessageTemplate);
    }

    /**
     * 新增消息模板
     * 
     * @param basicMessageTemplate 消息模板
     * @return 结果
     */
    @AutoFill(operation = AutoFillType.INSERT)
    @Override
    public int insertBasicMessageTemplate(BasicMessageTemplate basicMessageTemplate)
    {
        if(basicMessageTemplate == null) throw new BaseException("参数为空");
        String messageTemplateName = basicMessageTemplate.getMessageTemplateName().trim();
        if(StrUtil.isBlank(messageTemplateName)) throw new BaseException("模板名称为空");
        int i = basicMessageTemplateMapper.countBasicMessageTemplateByMessageTemplateName(messageTemplateName);
        if(i > 0) throw new BaseException(StringUtils.format("模板【{}】已存在", messageTemplateName));

        basicMessageTemplate.setMessageTemplateName(messageTemplateName);
        return basicMessageTemplateMapper.insertBasicMessageTemplate(basicMessageTemplate);
    }

    /**
     * 修改消息模板
     * 
     * @param basicMessageTemplate 消息模板
     * @return 结果
     */
    @AutoFill(operation = AutoFillType.UPDATE)
    @Override
    public int updateBasicMessageTemplate(BasicMessageTemplate basicMessageTemplate)
    {
        if(basicMessageTemplate == null) throw new BaseException("参数为空");
        return basicMessageTemplateMapper.updateBasicMessageTemplate(basicMessageTemplate);
    }

    /**
     * 批量删除消息模板
     * 
     * @param messageTemplateIds 需要删除的消息模板主键
     * @return 结果
     */
    @Override
    public int deleteBasicMessageTemplateByMessageTemplateIds(Long[] messageTemplateIds)
    {
        return basicMessageTemplateMapper.deleteBasicMessageTemplateByMessageTemplateIds(messageTemplateIds);
    }

    /**
     * 删除消息模板信息
     * 
     * @param messageTemplateId 消息模板主键
     * @return 结果
     */
    @Override
    public int deleteBasicMessageTemplateByMessageTemplateId(Long messageTemplateId)
    {
        return basicMessageTemplateMapper.deleteBasicMessageTemplateByMessageTemplateId(messageTemplateId);
    }
}
